#!/bin/bash
# author:lixiang

# ffmpeg批量处理wav文件，单声道改为双声道
# sh change_ac.sh <orig> <orig_ac2>
# orig 要处理的音频文件目录
# orig_ac2 输出文件的目录

# 判断传入的参数
if [ ! -n "$1" ]
then
    echo "缺少第一个参数"
    echo "usage: sh change_ac.sh orig orig_ac2"
    exit 1
fi

if [ ! -n "$2" ]
then
    echo "缺少第二个参数"
    echo "usage: sh change_ac.sh orig orig_ac2"
    exit 1
fi

# 工作目录
workdir="/mnt/share/code/ffmpeg/orig"
# 切换工作目录，根据自己要处理的音频文件目录修改
# cd $workdir

# 清除数据
echo "清除数据: "$2
rm -rf $2
# 创建生成数据的文件夹
echo "创建输出的数据空间: "$2
mkdir -p $2

# 统计目录数量和音频文件数量
DS=0
FS=0

# 递归遍历数据目录，得到文件名
function change_ac(){
    for file in `ls $1`
    do
        if [ -d $1"/"$file ]  
        then
            ((DS++))
            # echo $1"/"$file
            mkdir -p $2"/"$file
            change_ac $1"/"$file $2"/"$file
        else
            # 如果是wav文件，则执行ffmpeg
            if [ "${file##*.}" = "wav" ]; then
                ((FS++))
                ffmpeg -y -i $1"/"$file -ac 2 $2"/"$file > $workdir/1.log 2> $workdir/2.log
                echo ffmpeg -y -i $1"/"$file -ac 2 $2"/"$file
            fi
        fi
    done
}

# 调用方法，开始处理音频
change_ac $1 $2

echo "执行完毕！"
echo "${DS} dictories,${FS} files"
exit 0
